<?php
session_start();
include('include/config.php');
include('include/fonctions.php');
$messageErrMail = 'Page : ajout-domaine.php<br />';
$msgErr = $nomDomaine = $domaine = $matiere = '';
actualiser_session();
$connection = connexionBdd();

//on check pour savoir si on vient ici pour modifier ou supprimer une matière
if ((isset($_GET['id'])) && (intval($_GET['id'] > 0))) {
    $id = secure($_GET['id']);

    $connection = connexionBdd();
    //on vient sur cette page pour supprimer
    if (isset($_GET['supp'])) {
        $query = 'DELETE FROM `matiere` WHERE `id_matiere` =' . $id . ' LIMIT 1';
        try {
            $connection->exec($query);
            $msgErr = '<div class="success">La suppression de la matière et des ses notes sont effectives.</div>';
        } catch (Exception $e) {
            $msgErr = '<div class="error">Une erreur est survenue lors de la suppression de la matière. Merci de réitérer votre opération.</div>';
            $messageErrMail .= 'Erreur suppression prof_id : ' . $prof_id . ' et matiere : ' . $id;
            error_log($messageErrMail, 1, $mailAdmin, $enteteErrLog);
        }
    } else {
        //on vient ici pour récupérer les élement d'une matiere en vu d'une modification
        $req = $connection->prepare('SELECT `id_domaine`,`nom_matiere` FROM `matiere` WHERE `id_matiere` = :id LIMIT 1');
        $req->bindParam(':id', $id, PDO::PARAM_INT);
        $req->execute();
        $donnees = $req->fetch(PDO::FETCH_ASSOC);
        $req->closeCursor();
        $domaine = $donnees['id_domaine'];
        $matiere = $donnees['nom_matiere'];
        $_SESSION['modifMatiere'] = $id;
    }
}

//on check pour savoir si on vient ici pour modifier ou supprimer un domaine
if ((isset($_GET['idom'])) && (intval($_GET['idom'] > 0))) {
    $idom = secure($_GET['idom']);

    $connection = connexionBdd();
    //on vient sur cette page pour supprimer
    if (isset($_GET['supp'])) {
        //attention on supprime en mme temps, les matières qui vont avec et les notes rattachées aux matières
        $query = 'DELETE FROM `domaine` WHERE `id_domaine` =' . $idom . ' LIMIT 1';
        try {
            $connection->exec($query);
            $msgErr = '<div class="success">La suppression du domaine, des matières et des notes en relation sont effectives.</div>';
        } catch (Exception $e) {
            $msgErr = '<div class="error">Une erreur est survenue lors de la suppression du domaine. Merci de réitérer votre opération.</div>';
            $messageErrMail .= 'Erreur suppression domaine prof_id : ' . $prof_id . ' et matiere : ' . $idom;
            error_log($messageErrMail, 1, $mailAdmin, $enteteErrLog);
        }
    } else {
        //on vient ici pour récupérer les élement d'une matiere en vu d'une modification
        $req = $connection->prepare('SELECT `nom_domaine` FROM `domaine` WHERE `id_domaine` = :id LIMIT 1');
        $req->bindParam(':id', $idom, PDO::PARAM_INT);
        $req->execute();
        $donnees = $req->fetch(PDO::FETCH_ASSOC);
        $req->closeCursor();
        $nomDomaine = $donnees['nom_domaine'];
        $_SESSION['modifDomaine'] = $idom;
    }
}

/* * ********************************************************
 *   Ajout Domaine
 * ******************************************************** */
if (!empty($_POST['envoyer'])) {
    $err = 0;
    //Nom
    if (isset($_POST['nom'])) {
        $nomDomaine = secure($_POST['nom']);
        $nom_result = checkVarchar($nomDomaine, 2, 150);
        if ($nom_result == 'tooshort') {
            $msgErrNomDom = '<div class="warning">Le nom est trop court, minimum 2 caractères.</div>';
            $err++;
        } else if ($nom_result == 'toolong') {
            $msgErrNomDom = '<div class="warning">Le nom est trop long, maximum 150 caractères.</div>';
            $err++;
        } else if ($nom_result == 'empty') {
            $msgErrNomDom = '<div class="warning">Merci de nomer le domaine.</div>';
            $err++;
        }
    } else {
        $msgErrNomDom = '<div class="warning">Merci de nomer le domaine.</div>';
        $err++;
    }

    //tout est ok on continue l'inscription
    if ($err < 1) {
        $connection = connexionBdd();
        if ((isset($_SESSION['modifDomaine'])) && (intval($_SESSION['modifDomaine']) > 0)) {
            $insert = $connection->prepare('UPDATE `domaine` SET
                                            `nom_domaine` =  :nom
                                            WHERE  `id_domaine` =:id');
            $insert->bindParam(':id', $_SESSION['modifDomaine'], PDO::PARAM_INT);
            $msgErr = '<div class="success">Domaine modifié avec succès.</div>';
        } else {
            $insert = $connection->prepare('INSERT INTO `domaine` (
                                        `id_domaine` ,
                                        `id_prof` ,
                                        `nom_domaine`)
                                        VALUES(NULL, :id, :nom)');

            // On rempli les paramètres
            $insert->bindParam(':id', $_SESSION['prof_id'], PDO::PARAM_INT);
            $msgErr = '<div class="success">Domaine créé avec succès.</div>';
        }
        $insert->bindParam(':nom', $nomDomaine, PDO::PARAM_STR);

        // On exécute
        try {
            $insert->execute();
            $insert->closeCursor();
            $nomDomaine = '';
            unset($_SESSION['modifDomaine']);
        } catch (Exception $e) {
            $msgErr = '<div class="error">Une erreur technique est venue perturbée votre inscription. Notre équipe technique vient d\en être informée. Merci de renouveler votre opération ultérieurement.</div>';
            $err++;
            $messageErrMail .=$e->getMessage();
            error_log($messageErrMail, 1, $mailAdmin, $enteteErrLog);
        }
    }
}

/* * ********************************************************
 *   Ajout Matière
 * ******************************************************** */
if (!empty($_POST['envoyerMatiere'])) {
    $err = 0;
    //Domaine
    if (isset($_POST['domaine'])) {
        $domaine = secure($_POST['domaine']);
    } else {
        $msgErrDomMatiere = '<div class="warning">Merci de renseigner le domaine</div>';
        $err++;
    }


    //Matière
    if (isset($_POST['nomMatiere'])) {
        $matiere = secure($_POST['nomMatiere']);
        $matiere_result = checkVarchar($matiere, 2, 150);
        if ($matiere_result == 'tooshort') {
            $msgErrMatiere = '<div class="warning">Le nom est trop court minimum 2 caractères.</div>';            
            $err++;
        } else if ($matiere_result == 'toolong') {
            $msgErrMatiere = '<div class="warning">Le nom est trop long maximum 150 caractères</div>';            
            $err++;
        } else if ($matiere_result == 'empty') {
            $msgErrMatiere = '<div class="warning">Merci de renseigner le nom de la matière.</div>';            
            $err++;
        }
    } else {
        $msgErrMatiere = '<div class="warning">Merci de renseigner le nom de la matière.</div>';        
        $err++;
    }

    //tout est ok on continue l'inscription
    if ($err < 1) {
        $connection = connexionBdd();
        if ((isset($_SESSION['modifMatiere'])) && (intval($_SESSION['modifMatiere'])>0)) {
            $insert = $connection->prepare('UPDATE `matiere` SET
                                            `id_domaine` =  :domaine,
                                            `nom_matiere` =  :matiere
                                            WHERE  `id_matiere` =:id');
            $insert->bindParam(':id', $_SESSION['modifMatiere'], PDO::PARAM_INT);
            $msgErr = '<div class="success">Matière crée avec succès.</div>';
        } else {
            $insert = $connection->prepare('INSERT INTO `matiere` (
                                        `id_matiere` ,
                                        `id_prof` ,
                                        `id_domaine` ,
                                        `nom_matiere`)
                                        VALUES(NULL, :id, :domaine, :matiere)');
            $insert->bindParam(':id', $_SESSION['prof_id'], PDO::PARAM_INT);
            $msgErr = '<div class="success">Matière modifiée avec succès.</div>';
        }
        $insert->bindParam(':domaine', $domaine, PDO::PARAM_INT);
        $insert->bindParam(':matiere', $matiere, PDO::PARAM_STR);

        // On exécute
        try {
            $insert->execute();
            $insert->closeCursor();
            $matiere = $domaine = '';
            unset($_SESSION['modifMatiere']);
        } catch (Exception $e) {
            $msgErr = '<div class="error">Une erreur technique est venue perturbée votre inscription. Notre équipe technique vient d\en être informée. Merci de renouveler votre opération ultérieurement.</div>';
            $err++;
            $messageErrMail .=$e->getMessage();
            error_log($messageErrMail, 1, $mailAdmin, $enteteErrLog);
        }
    }
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
        <title>Géstion des domaines et matières</title>
        <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
        <meta name="description" content="Permet la gestion complète des domaines et matières, avec l'ajout, la modification et la suppresison de vos élèves." />
        <meta name="keywords" content="gestion domaine, matière" />
        <meta name="author" content="Wicenty web" />
        <link rel="icon" href="images/favicon.ico" type="image/x-icon" />
        <link rel="shortcut icon" href="images/favicon.ico" type="image/x-icon" />
        <link rel="stylesheet" href="css/style.css" />
        <link rel="stylesheet" href="css/menu.css" />
        <link rel="stylesheet" href="css/form.css" />
        <script type="text/javascript">
            function delete_confirm(id) {
                if (confirm("Voulez vous vraiment supprimer cette matière ainsi que ses notes associées ?")) {
                    location.href = 'ajout-domaine.php?supp=1&id=' + id;
                }
                return false;
            }

            function delete_confirm_domaine(id) {
                if (confirm("Voulez vous vraiment supprimer ce domaine ainsi que ses matières et notes associées ?")) {
                    location.href = 'ajout-domaine.php?supp=1&idom=' + id;
                }
                return false;
            }
        </script>
    </head>
    <body>
        <!--==============================header=================================-->
        <?php
        require_once('include/menu.php');
        ?>

        <!--==============================content================================-->
        <div class="bg1">
            <div class="bg">
                <section id="content">
                    <div class="container_12">
                        <article class="grid_12">
                            <h1>Gestion Des Domaines</h1>
                            <p>Vous pouvez <strong>ajouter</strong> un domaine ou une matière, mais aussi <strong>modifier</strong> et <strong>supprimer</strong>. Un listing sur la droite de votre écran permet de contrôler l'ensemble.</p>
                            <p>Chaque matière ou domaine vous est propre. Seules les matières avec des notes apparaîtront sur le bulletin.</p>
                        </article>
                        <article class="grid_12">
                            <div class="border-bot"></div>
                        </article>
                        <article class="grid_7">
                            <h3>Gérer Mes domaines et Matières</h3>
                            <?php
                            echo $msgErr;
                            if ((isset($err)) && ($err > 0)) {
                                if (isset($msgErrNomDom))
                                    echo $msgErrNomDom;
                                if (isset($msgErrDomMatiere))
                                    echo $msgErrDomMatiere;
                                if (isset($msgErrMatiere))
                                    echo $msgErrMatiere;
                            }
                            ?>
                            <form name="domaine" id="stylized" method="post" action="ajout-domaine.php">
                                <fieldset>
                                    <?php
                                    if ((isset($_SESSION['modifDomaine'])) && (intval($_SESSION['modifDomaine']) > 0)) {
                                        $valueDomaine = 'Modifier un domaine';
                                    } else {
                                        $valueDomaine = 'Ajouter un domaine';
                                    }
                                    ?>
                                    <legend class="labelFieldset"><?php echo $valueDomaine; ?></legend>
                                    <label for="domaine" class="label3">Nom :</label> <input type="text" name="nom" id="nom" value="<?php echo $nomDomaine; ?>" placeholder="Intitulé du domaine" class="input"/><br/>
                                    <label class="label3">&nbsp;</label><input type="submit" value="<?php echo $valueDomaine; ?>" name="envoyer" class="bouton"/>
                                </fieldset>
                            </form>




                            <?php
//on affiche les matière uniquement si on a au moins un domaine
                            $reqDomaine = $connection->prepare('SELECT `id_domaine`,`nom_domaine` FROM `domaine` WHERE `id_prof`=:id ORDER BY `nom_domaine`');
                            $reqDomaine->bindParam(':id', $_SESSION['prof_id'], PDO::PARAM_INT);
                            $reqDomaine->execute();
                            $countDomaine = $reqDomaine->rowCount();
                            if ($countDomaine > 0) {
                                ?>
                                <form name="matiere" id="stylized" method="post" action="ajout-domaine.php" class="maxheight">
                                    <fieldset>
                                        <?php
                                        if ((isset($_SESSION['modifMatiere'])) && ($_SESSION['modifMatiere'])) {
                                            $value = 'Modifier une matière';
                                        } else {
                                            $value = 'Ajouter une matière';
                                        }
                                        ?>
                                        <legend class="labelFieldset"><?php echo $value; ?></legend>
                                        <label for="domaine" class="label3">Domaine :</label>
                                        <select class="select" name="domaine">
                                            <?php
                                            while ($donnees = $reqDomaine->fetch(PDO::FETCH_ASSOC)) {
                                                echo '<option value="' . $donnees['id_domaine'] . '"';
                                                if (isset($domaine)) {
                                                    if ($domaine == $donnees['id_domaine']) {
                                                        echo 'selected ';
                                                    }
                                                }
                                                echo '>' . $donnees['nom_domaine'] . '</option>';
                                            }
                                            ?>
                                        </select><br />
                                        <label for="nomMatiere" class="label3">Matière :</label> <input type="text" name="nomMatiere" id="nomMatiere" value="<?php echo $matiere; ?>" placeholder="Intitulé de la matière" class="input"/><br/>
                                        <br/>
                                        <label class="label3">&nbsp;</label><input type="submit" value="<?php echo $value; ?>" name="envoyerMatiere" class="bouton"/>
                                    </fieldset>
                                </form>
                                <?php
                            }
                            ?>
                        </article>


                        <article class="grid_4 prefix_1 border1">
                            <div class="margin-bot2">
                                <h3>Mes matières</h3>
                                <?php
                                $req = $connection->prepare('SELECT `id_domaine`,`id_matiere`,`nom_domaine`,`nom_matiere` FROM `matiere` NATURAL JOIN `domaine` WHERE `id_prof`=:id ORDER BY `nom_domaine`, `nom_matiere`');
                                $req->bindParam(':id', $_SESSION['prof_id'], PDO::PARAM_INT);
                                $req->execute();
                                $count = $req->rowCount();
                                $domainePrecedent = '';
                                if ($count > 0) {
                                    while ($donnees = $req->fetch(PDO::FETCH_ASSOC)) {
                                        if ($domainePrecedent != $donnees['nom_domaine']) {
                                            if ($domainePrecedent != '') {
                                                echo '<br />';
                                            }
                                            echo '<strong>' . $donnees['nom_domaine'] . '</strong>
                                            <a href="ajout-domaine.php?idom=' . $donnees['id_domaine'] . '"><img src="css/ico/tag_blue_edit.png" width="16px" height="16px" class="img-indent-r2" /></a>
                                    <img src="css/ico/tag_blue_delete.png" width="16px" height="16px" class="img-indent-r2" onclick="delete_confirm_domaine(' . $donnees['id_domaine'] . ')"/><div class="clear"></div>';
                                            $domainePrecedent = $donnees['nom_domaine'];
                                        }
                                        echo '<li>' . $donnees['nom_matiere'] . '
                                        <a href="ajout-domaine.php?id=' . $donnees['id_matiere'] . '"><img src="css/ico/pencil.png" width="16px" height="16px" class="img-indent-r2" /></a>
                                        <img src="css/ico/delete.png" width="16px" height="16px" class="img-indent-r2" onclick="delete_confirm(' . $donnees['id_matiere'] . ')"/><div class="clear"></div></li>';
                                    }
                                } else {
                                    echo '<p>Aucun domaine actuellement.</p>';
                                }

                                $req->closeCursor();
                                ?>
                            </div>
                            <div class="border-bot margin-bot2"></div>
                            <fieldset>
                                <legend>Légende</legend>
                                <img src="css/ico/tag_blue_edit.png" width="16px" height="16px" /> <strong>Modifier</strong> un domaine<br />
                                <img src="css/ico/tag_blue_delete.png" width="16px" height="16px" /> <strong>Supprimer</strong> un domaine<br /><br />
                                <img src="css/ico/pencil.png" width="16px" height="16px" /> <strong>Modifier</strong> une matière<br />
                                <img src="css/ico/delete.png" width="16px" height="16px" /> <strong>Supprimer</strong> une matière<br />
                            </fieldset>
                        </article>
                    </div>
                </section>

                <!--==============================footer=================================-->
                <?php
//                echo '<pre>';
//                print_r($GLOBALS);
//                echo '</pre>';
                require_once 'include/footer.php';
                ?>
            </div>
        </div>
    </body>
</html>